From: Jasper St. Pierre Date: Sat, 12 Oct 2013 02:36:49 +0000 (-0400) Subject: overviewControls: Don't use the child's preferred size to slide from X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~3224 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=89b9d079b1dd040f3260feab3830da6fcad0f44f;p=gnome-shell.git overviewControls: Don't use the child's preferred size to slide from In order for the workspace thumbnails box to have the correct size, we need to constrain the width of the thumbnails box to the height we're given, instead of assuming an unlimited height. https://bugzilla.gnome.org/show_bug.cgi?id=694881 --- diff --git a/js/ui/overviewControls.js b/js/ui/overviewControls.js index 556ce3646..8d189975a 100644 --- a/js/ui/overviewControls.js +++ b/js/ui/overviewControls.js @@ -55,9 +55,9 @@ const SlideLayout = new Lang.Class({ vfunc_allocate: function(container, box, flags) { let child = container.get_first_child(); - let [, , natWidth, natHeight] = child.get_preferred_size(); let availWidth = Math.round(box.x2 - box.x1); let availHeight = Math.round(box.y2 - box.y1); + let [, natWidth] = child.get_preferred_width(availHeight); // Align the actor inside the clipped box, as the actor's alignment // flags only determine what to do if the allocated box is bigger @@ -69,7 +69,7 @@ const SlideLayout = new Lang.Class({ actorBox.x1 = alignX; actorBox.x2 = actorBox.x1 + child.x_expand ? availWidth : natWidth; actorBox.y1 = 0; - actorBox.y2 = actorBox.y1 + child.y_expand ? availHeight : natHeight; + actorBox.y2 = actorBox.y1 + availHeight; child.allocate(actorBox, flags); }, @@ -239,11 +239,6 @@ const ThumbnailsSlider = new Lang.Class({ this._thumbnailsBox = thumbnailsBox; - // SlideLayout reads the actor's expand flags to decide - // whether to allocate the natural size to its child, or the whole - // available allocation - this._thumbnailsBox.actor.y_expand = true; - this.actor.request_mode = Clutter.RequestMode.WIDTH_FOR_HEIGHT; this.actor.reactive = true; this.actor.track_hover = true; @@ -327,7 +322,6 @@ const DashSlider = new Lang.Class({ // whether to allocate the natural size to its child, or the whole // available allocation this._dash.actor.x_expand = true; - this._dash.actor.y_expand = true; this.actor.x_align = Clutter.ActorAlign.START; this.actor.y_expand = true;